//
//  Problem709.swift
//  TestProject
//
//  Created by 武侠 on 2021/3/15.
//  Copyright © 2021 zhulong. All rights reserved.
//

import UIKit

/*
 709. 转换成小写字母 【位运算】【ascii】
 实现函数 ToLowerCase()，该函数接收一个字符串参数 str，并将该字符串中的大写字母转换成小写字母，之后返回新的字符串。

 示例 1：
     输入: "Hello"
     输出: "hello"
 示例 2：
     输入: "here"
     输出: "here"
 示例 3：
     输入: "LOVELY"
     输出: "lovely"
 */
@objcMembers class Problem709: NSObject {
    func solution() {
        print(toLowerCase("Hello"))
        print(toLowerCase("here"))
        print(toLowerCase("LOVELY"))
    }
    
    /*
     根据assic表来判断
     1: 当 65 <= assic <= 90就是大写
     2: 把大写转换成小写
     */
    func toLowerCase(_ str: String) -> String {
        var charts:[Character] = []
        for c in str {
            if c.asciiValue! >= 65 && c.asciiValue! <= 90 {
                let char = Character(Unicode.Scalar(c.asciiValue!+32))
                charts.append(char)
            } else {
                charts.append(c)
            }
        }
        
        return String(charts)
    }
}
